Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[GRA] PONG


Rekomendowane odpowiedzi

Opublikowano

tutaj zamieszczam półprodukt gry PONG. nie ogarniam kolizji więc ścian tak jakby nie ma, ani piłka się nie odbija ;)

miałem pewiem pomysł na odbijanie że np. jak piłka przekorczy koordynaty y dla gracza 1 to wróci się ona do gracza 2 ale wtedy piłka "odbijałaby" się w nieskończoność.( nie wiem poprostu jak to zrobić). Jeżeli ktoś napisze dla mnie odbijanie ( w co wątpie) będe wdzięczny :)

 

https://www.virustotal.com/file/9ab7311178ca8751f6faf4f236d196c29d0f9512a7e3389fe9a8f13676902fb8/analysis/1336593764/

http://ul.to/vp0e4e3p

 

tutaj kod i paczka:

 


#include "au3Irrlicht2.au3"
#include "misc.au3"
_IrrStart( $IRR_EDT_OPENGL, 800, 400, $IRR_BITS_PER_PIXEL_32, _
$IRR_WINDOWED, $IRR_NO_SHADOWS, $IRR_IGNORE_EVENTS, _
$IRR_VERTICAL_SYNC_ON )
_IrrSetWindowCaption("PONG by RUSH")

$player1 = _IrrGetTexture("player1.bmp")
_IrrColorKeyTexture($player1, 255,255,255 )
$player2 = _IrrGetTexture("player2.bmp")
_IrrColorKeyTexture($player2, 255,255,255 )
$background = _IrrGetTexture("background.bmp")
_IrrColorKeyTexture($background, 255,255,255 )
$ball =  _IrrGetTexture("ball.bmp")
_IrrColorKeyTexture($ball, 255,255,255 )
$sciana =  _IrrGetTexture("sciana.bmp")
_IrrColorKeyTexture($sciana, 255,255,255 )

$x = 10
$y = 300

$x2 =770
$y2 = 300

While _IrrRunning()
_IrrBeginScene( 0,0,0)
_IrrDraw2DImageElement( $background,"","", 0,0,800,400, $IRR_use_ALPHA )
_IrrDraw2DImageElement( $sciana,"","", 0,0,800,10, $IRR_use_ALPHA )
_IrrDraw2DImageElement( $sciana,0,390, 0,0,800,10, $IRR_use_ALPHA )
_IrrDraw2DImageElement( $player1, $x ,$y, 0,0,15,90, $IRR_use_ALPHA )
_IrrDraw2DImageElement( $player2, $x2 ,$y2, 0,0,15,90, $IRR_use_ALPHA )
_IrrDraw2DImageElement( $ball, 395 ,195, 0,0,30,30, $IRR_use_ALPHA )
_Irrendscene()
sterowanie1()
sterowanie2()
Sleep(2)
WEnd




func sterowanie2()
if _IsPressed("28")=1 Then $y+=5
if _IsPressed("26")=1 Then $y-=5
EndFunc

Func sterowanie1()
if _IsPressed("53")=1 Then $y2+=5
if _IsPressed("57")=1 Then $y2-=5
EndFunc

 

13301204_12_30.png

 

lubie +

Opublikowano

Cholernie mi miło ,że ktoś zaczął się interesować Irrlichtem :)

Zatem jedyne co udało mi sie zrobić na chwilę obecną to poruszanie kulki lewa prawa z odbiciem, co do gora dol jeszcze nie wymyslilem jak zrobic z katem odbicia itp ;p

Poki co przejrzyj:

 


#include "au3Irrlicht2.au3"
#include "misc.au3"
HotKeySet("k",'aaa')
_IrrStart( $IRR_EDT_OPENGL, 800, 400, $IRR_BITS_PER_PIXEL_32, _
$IRR_WINDOWED, $IRR_NO_SHADOWS, $IRR_IGNORE_EVENTS, _
$IRR_VERTICAL_SYNC_ON )
_IrrSetWindowCaption("PONG by RUSH")

$player1 = _IrrGetTexture("player1.bmp")
_IrrColorKeyTexture($player1, 255,255,255 )
$player2 = _IrrGetTexture("player2.bmp")
_IrrColorKeyTexture($player2, 255,255,255 )
$background = _IrrGetTexture("background.bmp")
_IrrColorKeyTexture($background, 255,255,255 )
$ball = _IrrGetTexture("ball.bmp")
_IrrColorKeyTexture($ball, 0,0,0 )
$sciana = _IrrGetTexture("sciana.bmp")
_IrrColorKeyTexture($sciana, 255,255,255 )

$x = 10
$y = 300

$x2 =770
$y2 = 300

$ballx = 400
$bally = 200

;dim $wektor[3]=['lewa','prawa','gora','dol']
$wektoraktywny='lewa'
While _IrrRunning()
_IrrBeginScene( 0,0,0)
_IrrDraw2DImageElement( $background,"","", 0,0,800,400, $IRR_use_ALPHA )
_IrrDraw2DImageElement( $sciana,"","", 0,0,800,10, $IRR_use_ALPHA )
_IrrDraw2DImageElement( $sciana,0,390, 0,0,800,10, $IRR_use_ALPHA )
_IrrDraw2DImageElement( $player1, $x ,$y, 0,0,15,90, $IRR_use_ALPHA )
_IrrDraw2DImageElement( $player2, $x2 ,$y2, 0,0,15,90, $IRR_use_ALPHA )
_IrrDraw2DImageElement( $ball, $ballx ,$bally, 0,0,30,30, $IRR_use_ALPHA )
_Irrendscene()
sterowanie1()
sterowanie2()
poruszanie()
Sleep(2)

WEnd




func sterowanie2()
if _IsPressed("28")=1 Then $y+=5
if _IsPressed("26")=1 Then $y-=5
EndFunc

Func sterowanie1()
if _IsPressed("53")=1 Then $y2+=5
if _IsPressed("57")=1 Then $y2-=5
EndFunc


func odbicie()
if kolizja($ballx,$bally,30,30,$x,$y,15,90)=1 then
if $wektoraktywny='lewa' then
$wektoraktywny='prawa'
Else
$wektoraktywny='lewa'
EndIf
EndIf
if kolizja($ballx,$bally,30,30,$x2,$y2,15,90)=1 then
if $wektoraktywny='lewa' then
$wektoraktywny='prawa'
Else
$wektoraktywny='lewa'
EndIf
EndIf

EndFunc



func kolizja($bohater_x,$bohater_y,$szer_bohater,$wys_bohater,$przeszkoda_x,$przeszkoda_y,$szer_przeszkoda,$wys_przeszkoda,$id=0)

if ($bohater_x + $szer_bohater > $przeszkoda_x) And ($bohater_y + $wys_bohater > $przeszkoda_y) And ($bohater_x < $przeszkoda_x + $szer_przeszkoda) And ($bohater_y < $przeszkoda_y + $wys_przeszkoda) Then
return 1
EndIf

endfunc

func poruszanie()
if $wektoraktywny='lewa' then $ballx-=1
if $wektoraktywny='prawa' then $ballx+=1
odbicie()
EndFunc




func aaa()
;ConsoleWrite($x&" : "&$y&@CRLF)
;ConsoleWrite(kolizja($ballx,$bally,30,30,$x,$y,15,90))
ConsoleWrite($wektoraktywny)
EndFunc









 

Opublikowano

jak wróce do domu to też coś pokombinuje :P po skosie zeby szło wystarczy jesio 2 linijki dopisać . jesio kolizje z " murkami" i pare innych rzeczy :)

 

 

if $wektoraktywny='lewa' then $ballx-=3
if $wektoraktywny='prawa' then $ballx+=3
if $wektoraktywny='lewa' then $bally-=1
if $wektoraktywny='prawa' then $bally+=1
odbicie()

 

13301204_12_30.png

 

lubie +

Opublikowano

po zderzeniu ze ścianą negujcie (tzn zmieniajcie znak) wartość prędkości w osi y (y = 0 - y)

a po zderzeniu z "paletkmi" to samo dla osi x

  • 3 miesiące temu...
Opublikowano · Ukryte przez 4ggr35510n, 13 Sierpnia 2012 - Brak powodu
Ukryte przez 4ggr35510n, 13 Sierpnia 2012 - Brak powodu

.

BDrwh.png?1

Sygnaturka by FructoN.

FructoN jest tylko jeden.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...